/*
 * @Author: ljkt
 * @Version: 2.0
 * @Date: 2022-05-16 11:06:33
 * @LastEditors: ljkt
 * @LastEditTime: 2025-01-28 15:32:16
 * @Description:
 */
#ifndef _HAL_UARTX_H_
#define _HAL_UARTX_H_

#if defined(EN_UART0) || defined(EN_UART1) || defined(EN_UART2) || defined(EN_UART3)
enum
{
#ifdef EN_UART0
    e_HAL_UART_0,
#endif
#ifdef EN_UART1
    e_HAL_UART_1,
#endif
#ifdef EN_UART2
    e_HAL_UART_2,
#endif
#ifdef EN_UART3
    e_HAL_UART_3,
#endif
    e_HAL_UART_MAX,
};

typedef struct
{
    unsigned char index;      // 串口号
    s_index_and_name_t infor; // 应用的名字
    unsigned short baud;      // 波特率
    s_gpio_in_t gpio_rx;      // 接受端口
    s_gpio_out_t gpio_tx;     // 发送端口
    unsigned char level;      // 初始化电平
} s_uartx_config_t;
void Hal_Uartx_Init(s_uartx_config_t *config);                          // 串口初始化
void Hal_Uartx_Close(s_uartx_config_t *config);                         // 串口关闭
void Hal_Uartx_TxByte_Isr(s_uartx_config_t *config, unsigned char dat); // 发送1个数据
unsigned char Hal_Uartx_RxByte_Isr(s_uartx_config_t *config);           // 接受1个数据
unsigned char Hal_Uartx_Get_TxFlag_Isr(s_uartx_config_t *config);       // 获取发送标志
unsigned char Hal_Uartx_Get_RxFlag_Isr(s_uartx_config_t *config);       // 获取接收标志
#endif
#endif
